package com.hm.shopping.domain;

import java.util.ArrayList;
import java.util.List;

import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.Field;

import com.hm.shopping.auto.su.BaseDomain;
import com.hm.shopping.auto.su.R;
import com.hm.shopping.def.GoodsShelfStatusEnums;
import com.hm.shopping.vo.su.GoodsAttributeVo;
import com.hm.shopping.vo.su.GoodsParameterVo;

import lombok.Getter;
import lombok.Setter;

/**
 * @author shishun.wang
 * @date 2018年1月19日 下午4:38:56
 * @version 1.0
 * @describe 商品介绍信息
 */
@Setter
@Getter
@Document(collection = R.Database.prefix + "GOODS_INTRODUCTION")
public class GoodsIntroductionDomain extends BaseDomain {

	private static final long serialVersionUID = 1L;

	/**
	 * 商品分类CODE
	 */
	@Field(value = "classification_codes")
	private List<String> classificationCodes;
	
	/**
	 * 
	 * 商品上架状态
	 */
	private GoodsShelfStatusEnums goodsShelfStatus = GoodsShelfStatusEnums.OFFLINE;
	
	/**
	 * 商铺ID
	 */
	@Field(value = "shops_id")
	private String shopsId;

	/**
	 * 商品名称
	 */
	@Field(value = "goods_name")
	private String goodsName;
	
	/**
	 * 商品banner横幅
	 */
	private String banner;

	/**
	 * 商品介绍图
	 */
	@Field(value = "goods_introduction_pics")
	private List<String> goodsIntroductionPics = new ArrayList<String>();

	/**
	 * 库存
	 */
	private int inventory;
	
	/**
	 * 剩余库存
	 */
	@Field(value = "remaining_inventory")
	private int remainingInventory;
	
	/**
	 * 销量
	 */
	@Field(value = "sales_amount")
	private int salesAmount;

	/**
	 * 原价(分)
	 */
	@Field(value = "unit_price")
	private int unitPrice;
	
	/**
	 * 促销价(分)
	 */
	@Field(value = "promotion_unit_price")
	private int promotionUnitPrice;
	
	/**
	 * 商品属性
	 */
	@Field(value = "goods_attributes")
	private List<GoodsAttributeVo> goodsAttributes = new ArrayList<GoodsAttributeVo>();

	/**
	 * 商品参数
	 */
	@Field(value = "goods_parameters")
	private List<GoodsParameterVo> goodsParameters = new ArrayList<GoodsParameterVo>();

	/**
	 * 内容详情(html)
	 */
	@Field(value = "content_details")
	private String contentDetails;
}
